package pe.gob.osce.sirenas.dao;

import java.util.List;

import pe.gob.osce.sirenas.model.BusquedaFichaDTO;
import pe.gob.osce.sirenas.model.BusquedaFiscalizacionDTO;
import pe.gob.osce.sirenas.model.DocenciaDTO;
import pe.gob.osce.sirenas.model.EspecialidadAcademicaDTO;
import pe.gob.osce.sirenas.model.ExperienciaLaboralDTO;
import pe.gob.osce.sirenas.model.FiscalizaEntidadDTO;
import pe.gob.osce.sirenas.model.FiscalizacionDTO;
import pe.gob.osce.sirenas.model.FormacionAcademicaDTO;
import pe.gob.osce.sirenas.model.TrayectoriaArbitralDTO;
import pe.gob.osce.sirenas.model.jpa.Fiscalizacion;
import pe.gob.osce.sirenas.model.jpa.fiscalizacion.FiscalizaDocencia;
import pe.gob.osce.sirenas.model.jpa.fiscalizacion.FiscalizaEspecialidad;
import pe.gob.osce.sirenas.model.jpa.fiscalizacion.FiscalizaExpLaboral;
import pe.gob.osce.sirenas.model.jpa.fiscalizacion.FiscalizaFormacion;
import pe.gob.osce.sirenas.model.jpa.fiscalizacion.FiscalizaTrayecArbitral;

public interface FiscalizacionDAOLocal {

	public Fiscalizacion insertar(Fiscalizacion fiscalizacion) throws Exception;
	public List<BusquedaFiscalizacionDTO> listarBusquedaFiscalizaciones(BusquedaFiscalizacionDTO busquedaFiscalizacionDTO) throws Exception;

	public List<Long> listarFichasAleatorias(BusquedaFiscalizacionDTO busquedaFicha) throws Exception;
	public List<Long> listarFichaEnFiscalizacionVigente() throws Exception;
	public Long tieneFiscalizacionEnProceso(Long idFicha) throws Exception;
	

	public FiscalizaEntidadDTO obtieneFiscalizacionCapacitacion(Long idFicha,Long idCapacitacion) throws Exception;

	public List<Fiscalizacion> obtieneFiscalizacion(FiscalizacionDTO fiscalizacionDTO) throws Exception;

	public List<DocenciaDTO> obtieneDetalleFiscalizacionDocencia(FiscalizacionDTO fiscalizacionDTO) throws Exception ;
	public FiscalizaEntidadDTO obtieneFiscalizacionDocencia(FiscalizaEntidadDTO fiscalizaEntidadDTO) throws Exception ;
	public FiscalizaDocencia insertarFiscalizaDocencia(FiscalizaDocencia fiscalizaDocencia) throws Exception;

	public List<EspecialidadAcademicaDTO> obtieneDetalleFiscalizacionEspecialidad(FiscalizacionDTO fiscalizacionDTO) throws Exception ;
	public FiscalizaEntidadDTO obtieneFiscalizaEspecialidad(FiscalizaEntidadDTO fiscalizaEntidadDTO) throws Exception ;
	public FiscalizaEspecialidad insertarFiscalizaEspecialidad(FiscalizaEspecialidad fiscalizaEspecialidad) throws Exception;

	public List<ExperienciaLaboralDTO> obtieneDetalleFiscalizacionExpLaboral(FiscalizacionDTO fiscalizacionDTO) throws Exception ;
	public FiscalizaEntidadDTO obtieneFiscalizaExpLaboral(FiscalizaEntidadDTO fiscalizaEntidadDTO) throws Exception;
	public FiscalizaExpLaboral insertarFiscalizaExpLaboral(FiscalizaExpLaboral fiscalizaExpLaboral) throws Exception;

	public List<FormacionAcademicaDTO> obtieneDetalleFiscalizacionFormacion(FiscalizacionDTO fiscalizacionDTO) throws Exception;
	public FiscalizaEntidadDTO obtieneFiscalizaFormacion(FiscalizaEntidadDTO fiscalizaEntidadDTO) throws Exception ;
	public FiscalizaFormacion insertarFiscalizaFormacion(FiscalizaFormacion fiscalizaFormacion) throws Exception;

	public List<TrayectoriaArbitralDTO> obtieneDetalleFiscalizacionTrayectoria(FiscalizacionDTO fiscalizacionDTO) throws Exception;
	public FiscalizaEntidadDTO obtieneFiscalizaTrayecArbitral(FiscalizaEntidadDTO fiscalizaEntidadDTO) throws Exception  ;
	public FiscalizaTrayecArbitral insertarFiscalizaTrayecArbitral(FiscalizaTrayecArbitral fiscalizaTrayecArbitral) throws Exception;
}
